package es.ucm.is.www.GUI.client.panels;

import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

import es.ucm.is.www.GUI.client.Root;
/**
 * <p>Title: PanelConfirm.java </p>
 *
 * <p>Description: Panel de confirmacion</p>
 *
 * <p>Copyright: </p>
 *
 * @author 
 * @version 1.0
 * @see
 */
public class PanelConfirm extends DialogBox{
	
	private final AbsolutePanel fondo;
	//private final DialogBox panel;
	private Button cancelar;
	private Button aceptar;
	private HorizontalPanel hPanel;
	/**
	 * Constructora de la clase
	 */
	public PanelConfirm(){
		fondo = new AbsolutePanel();
	}
	/**
	 * Constructora de la clase
	 * @param title: titulo de la ventana
	 * @param message: mensaje de la ventana
	 */
	public PanelConfirm(String title, String mensaje){
		super();
		
		hPanel = new HorizontalPanel();
		hPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
		hPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
		fondo = new AbsolutePanel();
		fondo.setPixelSize(RootPanel.get().getOffsetWidth(), RootPanel.get().getOffsetHeight());
		fondo.setStyleName("fondoSuave");
		Root.fondo = fondo;
		//panel = new DialogBox();
		
		setHTML(title);
		HTML texto = new HTML(mensaje);
		
		VerticalPanel vPanel = new VerticalPanel();
		vPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
		vPanel.add(texto);
		vPanel.add(hPanel);
		setWidget(vPanel);
		//center();
		
	}
	/**
	 * Metodo para mostrar el panel
	 * @param c: variable de respuesta del servidor
	 */
	public void mostrar(final CallbackGeneric c){
		aceptar = new Button("Aceptar");
		cancelar = new Button("Cancelar");
		hPanel.add(aceptar);
		hPanel.add(cancelar);
		aceptar.addClickListener(new ClickListener(){

			public void onClick(Widget sender) {
				// TODO Auto-generated method stub
				c.acept();
				RootPanel.get().remove(fondo);
				hide();
			}
			
		});
		cancelar.addClickListener(new ClickListener(){

			public void onClick(Widget sender) {
				// TODO Auto-generated method stub
				c.cancel();
				RootPanel.get().remove(fondo);
				hide();
			}
			
		});
		fondo.getElement().setId("fondo");
		RootPanel.get().add(fondo,0,0);
		this.center();
	}
	
}
